//
//
//
//class Solution {
//    public int search(int[] nums, int target) {
//        int left = 0, right = nums.length - 1;
//        int mid = 0;
//        int key = nums[right];
//        while (left < right) {
//            mid = (left + right) / 2;
//            if (nums[mid] > key) {
//                left = mid + 1;
//            } else {
//                right = mid;
//            }
//        }
//
//        int s1 = 0, e1 = left - 1, s2 = left, e2 = nums.length - 1;
//        while (s1 <= e1) {
//            mid = (s1 + e1) / 2;
//            if (nums[mid] > target) {
//                e1 = mid - 1;
//            } else if (nums[mid] < target) {
//                s1 = mid + 1;
//            } else {
//                return mid;
//            }
//        }
//        while (s2 <= e2) {
//            mid = (s2 + e2) / 2;
//            if (nums[mid] > target) {
//                e2 = mid - 1;
//            } else if (nums[mid] < target) {
//                s2 = mid + 1;
//            } else {
//                return mid;
//            }
//        }
//        return -1;
//
//    }
//}